home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / assemb / prosm174.rdm < prev   
Text File  |  1996-05-20  |  20KB  |  459 lines

  1. Short:  Motorola 680x0-series Prof. Macro Assembler
  2. Author: dweber@amiga.icu.net.ch
  3. Type:   dev/asm
  4.  
  5.  
  6.  
  7. Welcome to the shareware release of ProAsm 1.74
  8.  
  9.  
  10.  
  11.  
  12.                                   ProAsm
  13.                    Copyright © 1989-1996 by Daniel Weber
  14.                             ProAsm is Shareware
  15.  
  16.  
  17.  
  18.  
  19.  
  20. 1.74 Release Notes:
  21. ProAsm(TM) Software
  22.  
  23. These notes address the following topics:
  24.   - The ProAsm Assembler
  25.   - ASX - The ProAsm User Interface
  26.   - ProOpts - The ProAsm Configuration Program
  27.   - Support Libraries
  28.   - ProAsm Software Overview
  29.   - Documentation
  30.   - Author
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                            The ProAsm Assembler
  39.                            --------------------
  40.  
  41. The  ProAsm  assembler  is a traditional two pass assembler that emits code
  42. for  the  entire  Motorola  MC68000  Family.  ProAsm is a high performance,
  43. full-featured   assembler   with   enough  powerful  features  to  make  it
  44. appropriate for all assembly tasks.  It produces native 68xxx code, and has
  45. special  directives to enable the selection of the target processor and the
  46. appropriate  code  optimization  for  that processor.  ProAsm supports both
  47. addressing  mode  syntaxes  as defined by Motorola.  Programmers find these
  48. capabilities  of  the  new  syntax  mode  particularly  useful for handling
  49. advanced data structures common to sophisticated application and high level
  50. languages.
  51.  
  52. The  output  produced  by  ProAsm  is  either  an  executable file that can
  53. directly  be  run  under AmigaDOS or the Workbench, object modules that are
  54. compatible with the Amiga standard linker and BLINK (the replacement linker
  55. from  'The  Software  Distillery'),  binary  output  for ROM-able code (for
  56. example),  pre-assembled  files,  or the Motorola S-record format.  Besides
  57. the  normal  output files, ProAsm can also generate four types of auxiliary
  58. output  files which reflect the results of the assembly process:  the error
  59. file  and  the  equate  file,  the  source  listing and the cross-reference
  60. listing.
  61.  
  62. ProAsm  has  a  tremendous number of switchable optimizations including the
  63. multipass  facility to gain an even more optimized code.  ProAsm also has a
  64. very  rich  set of directives including a wide range of synonyms that allow
  65. source  code  written  for  other  assemblers  (Public  Domain software for
  66. example) and the Commodore include files to be assembled.  Included as well
  67. are  directives  to  deal  with  structures,  repeat loops and similar code
  68. elements  very  easily.  Powerful macros with unlimited macro arguments and
  69. many macro directives are available to permit code to be easily and clearly
  70. arranged.
  71.  
  72. The  rich  set  of  available  facilities  allows  exact  control  over the
  73. performance  of  the  assembler.   This  control  includes features such as
  74. optimization,  case dependency for symbols, syntax control, and the default
  75. behaviour  of ProAsm to name a few.  More advanced control features such as
  76. precise  code  control  and  selectable  symbol  search  algorithm are also
  77. included.
  78.  
  79. A   valuable  feature  of  ProAsm  is  the  configuration  file,  which  is
  80. automatically  included in each assembly.  You can customize ProAsm to suit
  81. your  particular  wishes  by  including  commonly  used  macros,  code  and
  82. directives in the configuration file.
  83.  
  84. No  program  can  be  all  things  to  all  people.  So all assemblers have
  85. limitations  -  ProAsm  tries  to put them as far as possible not to narrow
  86. your  creativity.   This  results in the fact that the most limitations are
  87. just  limited  only  by  available  memory  (line length, macro body, macro
  88. nesting,  macro  arguments, nesting of macro directives, repeat and include
  89. file nesting,...).
  90.  
  91. This  makes  ProAsm  an ideal assembler for the professional developer, the
  92. high-level  language  programmer  (such  as  C,  Modula,...)  who  want  to
  93. integrate  some  assembly language code into his programs, and the beginner
  94. at assembly language programming.
  95.  
  96.  
  97.                                Some Features
  98.                                .............
  99.  
  100.   - Completely  written  in  carefully  hand-coded  assembly  language for
  101.     maximum speed.
  102.   - Supports the entire Motorola M68000 Family:
  103.     MC68000, MC68008, MC68010, MC68020, MC68030, MC68040, MC68060, MC68EC020,
  104.     MC68EC030 processors, and the MC68881, MC68882, MC68851 coprocessors.
  105.   - Both  addressing  mode syntax supported as defined by Motorola for the
  106.     M68000  Family.   (The syntax modes can individually be controlled by
  107.     using the  NEWSYNTAX,  OLDSYNTAX  and  RELAX directives.)
  108.   - Five different output file formats:
  109.     executable, linkable, binary, preasm (pre-assembled symbol tables and
  110.     macros), and the Motorola S-record format.
  111.   - Produces Amiga standard object files compatible with the Amiga standard
  112.     linker and BLINK (the replacement linker from 'The Software Distillery').
  113.   - Rich set of optimization possibilities.
  114.   - Multipass optimization to gain more compact code.
  115.   - Powerful macros (and many macro directives). (Unlimited number of macro
  116.     arguments and nesting - limited only by available memory)
  117.   - Configuration file supported to customize ProAsm.
  118.   - Convenience Pseudo-Opcodes: MEA, POP, PUSH, POPM, PUSHM, APOPM, APUSHM.
  119.   - Special directives to allow powerful string-handling.
  120.   - Support of text substitution using textual symbols.
  121.   - Include files supported (unlimited nesting of include files - limited
  122.     only by available memory).
  123.   - Conditional assembly (conditional nesting up to 231 levels possible).
  124.   - Directives to declare initialized data with restricted range
  125.   - Directives to define C-type, BCPL, and OS9-type strings.
  126.   - Supports symbol segmentation.
  127.   - Special directives to change the default behaviour of ProAsm.
  128.   - Structure offset directives allow the declaration of structures easily.
  129.   - Frame offset directives to define stack frame data structures.
  130.   - Repeat loop directives to allow text repetition (unlimited repeat
  131.     nesting - limited only by available memory).
  132.   - Up to 256 different hunks (code, data, and bss).
  133.   - Support of debug information for the executable and linkable output.
  134.     ProAsm generates either a standard or compressed debug hunk format that
  135.     is compatible with the SAS/C.
  136.   - A directive to attach an AmigaDOS comment to the output file.
  137.   - A directive to set the AmigaDOS file protection flags to the output file.
  138.   - Four auxiliary output files can be generated: the listing file, error
  139.     file, equate file, and the cross-reference listing.
  140.   - ProAsm allows the inclusion of binary images.
  141.   - The assembly task priority can be set from within the source file.
  142.   - ProAsm is entirely re-entrant, and can be made resident.
  143.   - A rich set of directives and options to control the assemblers behaviour
  144.     and to ease programming.
  145.   - The standard directives are compatible with the most popular assemblers.
  146.   - Many useful build-in symbols to make programming easier.
  147.   - Comfortable support of relative bases.
  148.   - XPK library system supported.
  149.   - Directives to control the report of information timing.
  150.   - Four selectable symbol search algorithm.
  151.   - (OSV37 & OSV39 and higher hunks supported)
  152.   - Six types of constants provided:
  153.     decimal, hexadecimal, binary, octal, floating point, and string.
  154.   - ProAsm (optionally) supports localization for the AmigaOS V38 and higher.
  155.     (German error texts included to the software package).
  156.  
  157.  
  158.  
  159.                             System Requirements
  160.                             ...................
  161.  
  162.   - Amiga with at least 512KByte of memory needed.
  163.   - Workbench and Kickstart 1.2 or higher required.
  164.   - Fully compatible with the entire Amiga family.
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.                       ASX - The ProAsm User Interface
  172.                       -------------------------------
  173. ASX  is  a user interface for the ProAsm assembler that is implemented as a
  174. commodity.   Through the use of the commodities.library it can be installed
  175. on any hotkey and fully controlled with the Commodities Exchange program.
  176.  
  177. ASX  loads  the ProAsm assembler which than can be accessed using the ARexx
  178. interface,  the  asx.library,  or the AppIcon possibility.  The asx.library
  179. and the AppIcon can optionally be enabled or disabled.
  180.  
  181. The  ARexx  commands  provide  a method of controlling ASX from an external
  182. program.   These  ARexx  commands  can  be  used  to  create  an integrated
  183. programming/development  environment  with  any  application that offers an
  184. ARexx  interface.  For example, a program can be written by a programmer on
  185. its  favourite ARexx equipped texteditor, then an ARexx command can be sent
  186. to ASX to assemble the source code.  Any error messages and warnings of the
  187. assembly  are  stored  by  ASX,  and  using  commands such as NEXTERROR and
  188. PREVERROR  the  texteditor is capable to position the cursor in the line of
  189. the  first  error.  After correcting that error a single keystroke can jump
  190. to  the  next  error,  or  another  keystroke can jump back to the previous
  191. error.
  192.  
  193. Another  method  of controlling ASX is the use of the optional asx.library.
  194. The  various  functions  that this library offers can be used to design own
  195. user interfaces with ease.
  196.  
  197. The AppIcon possibility is another visual user interface that allows one or
  198. more  source  file icons to be assembled by just dropping them over the ASX
  199. appicon.
  200.  
  201. Frequently  used include files can be loaded residently and managed by ASX.
  202. Such residently loaded include files reduce assembly time since they do not
  203. need to be loaded each time the assembler is called.
  204.  
  205. Preferred  include file paths can be added to a database that is managed by
  206. ASX.   During  assembly the assembler uses then this database to know where
  207. to look for the include files.
  208.  
  209. ASX  also  provides  a  feature  called  the source manager, which offers a
  210. possibility  to  manage the current project per hotkey.  Through the use of
  211. an  ARexx  script file the user can easily define the action that has to be
  212. fulfilled  when  an  entry  in the source manager window had been selected.
  213. Almost all shooting matches of the source manager can be set by the user to
  214. his wishes and needs to allow a wide range of flexibility.
  215.  
  216. For  an  easy  use  of  ASX,  it  comes along with an on-line help feature.
  217. Commodore's AmigaGuide is used to display the help text to the user.
  218.  
  219.  
  220.  
  221.                                Some Features
  222.                                .............
  223.  
  224.   - Hotkeys to control ASX.
  225.   - 53 ARexx commands that permits external programs to control ASX.
  226.   - 13 asx.library functions.
  227.   - Workbench 2.0's appicon feature supported.
  228.   - Source manager to manage projects and source codes by a single hotkey.
  229.   - Supports residently loaded include files to reduce assembly speed.
  230.   - Include file paths can be stored in a database to let the assembler
  231.     know where to look for the include files.
  232.   - Context-sensitive on-line help using Commodore's AmigaGuide.
  233.   - Settings can be saved and loaded.
  234.   - Full intuition/gadtools user interface to allow all changes to be done
  235.     using the mouse.
  236.   - Font-sensitive user interface.
  237.  
  238.  
  239.                             System Requirements
  240.                             ...................
  241.  
  242.   - Amiga with at least 512KByte of memory needed.
  243.   - Workbench and Kickstart 2.04 or higher required.
  244.   - Fully compatible with the entire Amiga family.
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.                 ProOpts - The ProAsm Configuration Program
  252.                 ------------------------------------------
  253. ProOpts  provides a simple method of generating or changing a configuration
  254. file  for  the ProAsm assembler.  Since ProAsm supports configuration files
  255. to  be  loaded  each  time when it is called, the user is able to customize
  256. ProAsm  to suit his particular wishes and needs.  The options for a project
  257. can  be set by clicking on the gadget that corresponds to the option.  Even
  258. options  for  which  the  ProOpts  utility  does  not  have a gadget can be
  259. specified by a special string and listview gadget.
  260.  
  261. The  generated  configuration  file  is  an  ASCII  file  that contains the
  262. specified options as assembly directives.  It is similar to an include file
  263. except  that it is loaded at the very beginning of each assembly.  There is
  264. no  restriction  on  the  use of as- sembler directives or even code in the
  265. configuration  file.   The  user  can  also  re-edit or add options using a
  266. texteditor.   Previously  generated config files can be loaded into ProOpts
  267. and then be changed to the new option settings.
  268.  
  269.  
  270.  
  271.                                Some Features
  272.                                .............
  273.  
  274.   - Configuration can be changed by using the mouse.
  275.   - Generates an assembly language source file.
  276.   - Supports options that have no specific gadget.
  277.   - Menu item to reset all options to their default.
  278.   - Full intuition/gadtools user interface to allow all changes to be done
  279.     using the mouse.
  280.   - Font-sensitive user interface.
  281.  
  282.  
  283.                             System Requirements
  284.                             ...................
  285.  
  286.   - Amiga with at least 512KByte of memory needed.
  287.   - Workbench and Kickstart 2.04 or higher required.
  288.   - Fully compatible with the entire Amiga family.
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.                              Support Libraries
  296.                              -----------------
  297. The  support  libraries  are  not  required  by  ProAsm  or  by  any of its
  298. associated  utilities.   They  can  optionally  be  installed  to  increase
  299. selectively the power and flexibility of ProAsm.
  300.  
  301.   - proasmlang.library     - ProAsm localization support library for OS V38
  302.                            and higher.
  303.   - proasmoptim.library  - Library to enlarge ProAsm's optimization dictionary
  304.                            to recognize more possible optimizations.
  305.   - proasmfp.library     - Library to boost ProAsm's floating-point support.
  306.  
  307. Please note that the last two libraries are currently not included to the
  308. archive.
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.                          ProAsm Software Overview
  316.                          ------------------------
  317. Listed and described below is the software provided in this release.
  318.  
  319.  
  320.                                  Programs
  321.                                  ........
  322.  
  323.   - Pre2Src    - Converts pre-assembled files into readable source code.
  324.   - ProHunk    - 680x0/688xx Hunk Analyser.
  325.   - Profiler    - Small run-time statistics utility.
  326.   - MMUInfo    - MMU information utility.
  327.   - StripD    - Strips debugging symbols/information from an object file.
  328.   - CLICalc    - CLI calculator.
  329.   - FCalc    - CLI IEEE double precision calculator.
  330.   - FCmp    - File compare utility.
  331.   - Bin2DC    - Converts binary data files into assembler source using the DC.x directive.
  332.   - FD2LVO    - Converts fd files to _LVO equate files.
  333.   - BDiff    - Small binary file compare program.
  334.   - UnBDiff    - Small binary un-diff.
  335.   - Blink    - Replacement linker from 'The Software Distillery'.
  336.  
  337.  
  338.                                Source Codes
  339.                                ............
  340.   - Pro68       - Shell-ASX Interface
  341.   - crypt    - Small encryption program
  342.   - perfmon    - Performance monitor
  343.   - cxchange    - Controls system commodities
  344.   - ...
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.                                  Routines
  353.                                  --------
  354. Routine  files  are  a library of useful routines that provide a simple and
  355. time  saving  method  for  assembly  programming.  Special macros have been
  356. designed  that  ensure  that  only the called routines get assembled.  This
  357. makes the routine files a good foundation for assembly programming.
  358.  
  359.   - alert.r        - Alert support routines.
  360.   - amigaguide.r    - AmigaGuide support routines.
  361.   - amigaguideasync.r    - Asynchroneous AmigaGuide support.
  362.   - AppIcon.r        - Routines for Workbench 2.0's appicon support.
  363.   - ARexx.r        - For ARexx support.
  364.   - ASLSupport.r    - For support of the ASL file requester.
  365.   - basicmac.r        - Macros for selective routines assembly.
  366.   - commodity.r        - Contains routines for commodity support.
  367.   - configfile.r    - Configuration file support routines.
  368.   - conio.r        - Routines for console window input/output.
  369.   - conoc.r        - Single console window open/close routines.
  370.   - conread.r        - Read routines for the console window.
  371.   - conreadpkt.r    - Read routines for the console window using packets.
  372.   - CRC16.r        - Routines to calculate an Ansi CRC16 checksum.
  373.   - DiskObjectSupport.r    - DiskObject support routines.
  374.   - dosfile.r        - Contains DOS file handling routines.
  375.   - doslib.r        - DOS library open and close routines.
  376.   - easylibrary.r    - Routines to open and close libraries simple.
  377.   - extmsg.r        - External message support routines.
  378.   - GadgetGroupSupport.r - GadgetGroup support routines for use with GTFace.
  379.   - graphicslib.r    - Graphics library open and close routines.
  380.   - gtface.r        - Window handling and gadtools interface routines.
  381.   - gtfdefs.r        - Definitions for GTFace.
  382.   - gtfguido.r        - GUI macros for GTFace.
  383.   - gtfmacros.r        - Macros for GTFace (gadgets and menus).
  384.   - gtfsupport.r    - Various GTFace support routines.
  385.   - gtfsupport_reb.r    - More GTFace support routines
  386.   - gtfxdefs.r        - External definitions for GTFace.
  387.   - intuitionlib.r    - Intuition open and close routines.
  388.   - IntuitionSupport.r    - Routines for the intuition BusyPointer.
  389.   - locale.r        - Support routines for locale (locale.library).
  390.   - locks.r        - Routines for locks, files, and directories.
  391.   - memory.r        - Memory handling routines.
  392.   - numbers.r        - Various routines for number conversion.
  393.   - numbers.mac        - String to number macros.
  394.   - packets.r        - DOS packet handling routines.
  395.   - paraliner.r        - UNIX like parameter line parser.
  396.   - parse.r        - Routines for text parsing.
  397.   - patch.r        - Library function patch routines.
  398.   - ports.r        - Contains ports, signal, and message handling
  399.                           routines.
  400.   - progressbars.r    - Routines to handle progress bars easily.
  401.   - qsort.r        - Quicksort sorting algorithm.
  402.   - readargs.r        - Interface routines to ReadArgs().
  403.   - readrexx.r        - Routines for a passive ARexx port.
  404.   - requester.r        - ASL and REQ file requester routine.
  405.   - reset.r        - Software reboot routine.
  406.   - script.r        - Routines to deal with batches.
  407.   - scrollbars.r    - GTFace appendum for horiz./vert. scrollbars.
  408.   - shortcut.r        - Routine to wait for a shortcut.
  409.   - startup4.r        - Enhanced CLI and Workbench startup code
  410.                           (with detach).
  411.   - string.r        - String support routines.
  412.   - stringmacros.r    - String support macros.
  413.   - structs.r        - Macros for various structures.
  414.   - support.mac        - Support macros.
  415.   - tasks.r        - Some little routines for tasks.
  416.   - tasktricks.r    - More routines for tasks.
  417.   - tooltypes.r        - Routines to get ToolTypes from a Workbench started
  418.                           program.
  419.   - ToolTypeSupport.r    - ToolType support routines.
  420.   - TypeOfProcessor.r    - Contains routine to determine installed processor and coprocessors.
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.                                Documentation
  428.                                -------------
  429. You find the complete online documentation in the Help/ and the Help/english/
  430. directory of this distribution.
  431.  
  432. A printed version of the manual with about 320 pages will be available
  433. as soon as possible.
  434.  
  435. Read the registration.doc or the registration part in the pro.guide file
  436. for further information about registration and the shareware limitation.
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.                                   Author
  444.                                   ------
  445. If   you   have   bugreports,   questions,   ideas,  flames  or  complaints
  446. (constructive  criticism is always welcome), or if you just want to contact
  447. me, write or send a letter to:
  448.  
  449.  
  450.                         Daniel Weber
  451.  
  452.         Internet:       dweber@amiga.icu.net.ch   (preferred)
  453.                         dweber@iiic.ethz.ch
  454.  
  455.         Mail:           Daniel Weber
  456.                         Hoeflistrasse 32
  457.                         CH-8135 Langnau
  458.                         Switzerland.
  459.